#ifndef ADDFRIENDDIALOG_H
#define ADDFRIENDDIALOG_H

#include <QDialog>
#include <QWidget>
#include <QGridLayout>
#include <QLineEdit>

#include "model/data.h"


////////////////////////////////////////
/// 表示一个好友搜索的结果
////////////////////////////////////////

class FriendResultItem : public QWidget
{
    Q_OBJECT
public:
    FriendResultItem(const model::UserInfo& userInfo);
    void clickAddBtn();

private:
    const model::UserInfo& userInfo;
    QPushButton* addBtn;
};

////////////////////////////////////////
/// 整个搜索好友的窗口
////////////////////////////////////////

class AddFriendDialog : public QDialog
{
    Q_OBJECT
public:
    AddFriendDialog(const AddFriendDialog &) = delete;
    AddFriendDialog(AddFriendDialog &&) = delete;
    AddFriendDialog &operator=(const AddFriendDialog &) = delete;
    AddFriendDialog &operator=(AddFriendDialog &&) = delete;
    AddFriendDialog(QWidget *parent);

    // 初始化
    void initResultArea();

    // 新增好友搜索结果
    void addResult(const model::UserInfo &userInfo);

    // 清空所有好友结果
    void clear();

    void setSearchKey(const QString &searcKey);

    void clickSearchBtn();
    void clickSearchBtnDone();

private:
    QLineEdit* searchEdit;

    // 整个窗口的网格布局
    QGridLayout* layout;

    // 保存搜索好友的结果
    QWidget* resultContainer;
};

#endif // ADDFRIENDDIALOG_H
